package com.fumin.dao;

import com.fumin.model.SysAclModule;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysAclModuleMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysAclModule record);

    int insertSelective(SysAclModule record);

    SysAclModule selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysAclModule record);

    int updateByPrimaryKey(SysAclModule record);

    /**
     * 查找level层级下面的所有子孙级权限模块
     * 例如：LEVEL 为1,那么查询LEVEL为1.开头的所有权限模块
     * //@Param 是在Mapper.xml文件中利用#{}中的变量名称
     * @param level
     * @return
     */
    List<SysAclModule> getChildAclModuleListByLevel(@Param("level") String level);

    /**
     * 批量更新LEVEL
     * @param sysAclModuleList
     */
    void batchUpdateLevel(@Param("sysAclModuleList") List<SysAclModule> sysAclModuleList);
    /**
     * 判断同一个权限模块下是否有重复的子模块
     * @param parentId
     * @param name
     * @param id
     * @return
     */
    int countByNameAndParentId(@Param("parentId") Integer parentId, @Param("name") String name, @Param("id") Integer id);

    /**
     * 获取所有的权限模块
     * @return
     */
    List<SysAclModule> getAllDept();

    /**
     * 查找所有的
     * @param aclModuleId 父部门ID
     * @return子节点
     */
    int countByParentId(@Param("aclModuleId") int aclModuleId);
}